package com.zhz.system.strategy;

import com.zhz.common.operator.Operator;
import com.zhz.system.contract.request.PermissionSaveRequest;
import com.zhz.system.contract.request.PermissionUpdateRequest;
import com.zhz.system.contract.response.PermissionFindByIdResponse;

/**
 * 权限类型的操作
 *
 * @author zhouhengzhe
 * @date 2023/3/30
 */
public interface PermissionTypeOperator extends Operator<Integer> {

    /**
     * 添加对应的数据
     *
     * @param permissionSaveRequest 权限保存请求
     * @param pid                   父id
     */
    void add(PermissionSaveRequest permissionSaveRequest, String pid);

    /**
     * 修改对应的数据
     *
     * @param permissionUpdateRequest 权限修改请求
     * @param pid                     父id
     */
    void update(PermissionUpdateRequest permissionUpdateRequest, String pid);

    /**
     * 根据id查询
     *
     * @param permissionFindByIdResponse 权限查询响应
     * @param id                         主键
     * @return 权限查询响应
     */
    PermissionFindByIdResponse findById(PermissionFindByIdResponse permissionFindByIdResponse, String id);


    /**
     * 根据业务key删除
     * @param id 主键
     */
    void deleteById(String id);
}
